Serverless Apps with FastAPI, DynamoDB, and Vue 您所在的位置:网站首页 flask django fastapi Serverless Apps with FastAPI, DynamoDB, and Vue

Serverless Apps with FastAPI, DynamoDB, and Vue

#Serverless Apps with FastAPI, DynamoDB, and Vue| 来源: 网络整理| 查看: 265

Introduction Part 1, Chapter 1 Changelog »

There are a lot of options to choose from when it comes to building a web application. Every step of the way, from the frontend to the backend to deployment, you'll have to choose the tools and technologies. This can be overwhelming.

Which backend framework? What about the testing library? Which JavaScript framework? Should I use a SQL or NoSQL database? Should I deploy to some cloud provider? Will that cost me a lot? What about scalability of my application? How should I deploy it? Manually or CI/CD?

If you want to build modern, insanely scalable applications that run on AWS for low prices this is course for you. It will teach you how to:

Build serverless FastAPI APIs that run on AWS Lambda Use DynamoDB as the main database for your applications Deploy FastAPI apps to AWS Lambda using CI/CD on GitHub Actions and Serverless Framework Use Cognito for authentication inside your APIs Consume the backend FastAPI API from the frontend Vue application Deploy Vue applications to S3 Use Cognito for authentication inside Vue applications Serve your applications with CloudFront CDNs on custom domains Set up monitoring and alerting for your applications with CloudWatch App Overview

By the end of this course, you'll have developed a web application (both the backend API and frontend UI) for managing your tasks. We'll cover the following use cases:

create a task list open tasks list closed tasks close a task

You'll set up a git repository from scratch, build the API, set up a CI/CD pipeline, build a DynamoDB data model, use Cognito for authentication, build a Vue application, monitor your application, and deploy new versions of the application.

What's This Course About?

This course will teach you how to use the most modern tools that play nicely together to build a full web application. Plus, you'll get all of that without having to manage any servers since we'll leverage "serverless" technologies: FastAPI will run on AWS Lambda, Vue will be served from S3 via a CDN, Cognito will take care of authentication, DynamoDB will store your data, and CloudWatch will monitor your application. All of those services are available as part of the free-tier on AWS, so you won't need to pay for anything unless you have a lot of traffic. Don't worry -- we'll still follow good old Test-driven Development and set up CI/CD.

Tools, Frameworks, and Services

Along the way, you'll be using several development tools. Feel free to swap out the tools used in this course for the ones that solve your problems.

GitHub

GitHub is a solution for managing the full software development lifecycle. You'll use it for:

external git repository CI/CD pipeline

You can replace it with:

Bitbucket (with pipelines) GitLab GitHub + CircleCI Poetry

Poetry is a tool used for Python dependency management. You'll use it for managing dependencies.

You can replace it with:

pip pipenv FastAPI

FastAPI is a high-performance, easy-to-learn, fast-to-code, ready-for-production web framework for building APIs with Python. You'll use it for building a web application.

You can replace it with:

Flask Django Pyramid Vue

Vue is a an approachable, performant, and versatile framework for building web user interfaces with JavaScript/TypeScript. You'll use it for building a web application.

You can replace it with:

React Svelte Angular pytest

The pytest framework makes it easy to write Python tests. You'll use it to write tests for the web application.

You can replace it with:

unittest nose AWS DynamoDB

Amazon DynamoDB is "fast, flexible NoSQL database service for single-digit millisecond performance at any scale". You'll use it to persist data used by the web application.

You can replace it with:

Postgres MongoDB AWS Cognito

Amazon Cognito is AWS service that simplifies authentication management by a lot. You'll use it sign-up and sign-in your users.

You can replace it with:

Auth0 Okta AWS Cloudwatch

Amazon CloudWatch is a monitoring and observability service. You'll use it to gather and search logs and monitor resources (like CPU and memory usage) used by the web application.

You can replace it with:

Prometheus Datadog New Relic Splunk AWS Lambda

AWS Lambda is a serverless, event-driven compute service that lets you run code for virtually any type of application or backend service without provisioning or managing servers. You'll use it to run API of your web application.

You can replace it with:

Azure Functions GCP Cloud Functions CloudFormation

CloudFormation is an AWS service used to model, provision, and manage AWS resources. You'll use it to manage the AWS infrastructure (DNS, CloudFront, etc.) required for running your application.

You can replace it with:

Terraform Ansible Pulumi Serverless Framework

Serverless Framework is framework used for developing, deploying, troubleshooting, and securing your serverless applications. You'll use it to manage application resources, like AWS Lambda functions and environment variables, and deploying your applications.

You can replace it with:

Zappa Chalice CloudFront

CloudFront is low-latency content delivery network. You'll use it to serve the Vue application from S3 and API from Lambda.

You can replace it with:

Cloudflare Google Cloud CDN Microsoft Azure CDN Codecov

Codecov is service that helps you track the coverage of your code. You can track changes and compare branches and commits. It helps to focus on changes instead of the current code coverage percentage.

You can replace it with:

Coveralls Github Action Code Coverage Report Mangum

Mangum is an adapter for running ASGI applications in AWS Lambda environment. It handles API Gateway events sent to Lambda and responses returned from ASGI application.

Changelog » ✓ Mark as Completed


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有